#ifndef _VECTOR_H_
#define _VECTOR_H_

#include "params.h"
#include <vector>


class Vector
{
  public:
    Vector(unsigned int p_dimensions, unsigned int p_boundary);
    Vector(unsigned int p_dimensions, double p_value);
    virtual ~Vector();
    Vector(const Vector &p_vector);
    double getComponent(unsigned int p_i) const;
    void setComponent(unsigned int p_i, double p_value);
    int getComponentsSize() const;

    // Some operators.
    virtual Vector &operator=(const Vector &p_vector);
    virtual Vector &operator*=(double p_constant);

  protected:
    unsigned int m_dimensions;
    std::vector<double> m_components;

};

#endif /* _VECTOR_H_ */
